package com.atguigu.lease.web.admin.service;

import com.atguigu.lease.model.entity.SystemPost;
import com.atguigu.lease.model.enums.BaseStatus;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author liubo
* @description 针对表【system_post(岗位信息表)】的数据库操作Service
* @createDate 2023-07-24 15:48:00
*/
public interface SystemPostService extends IService<SystemPost> {

    /**
     * 自定义分页查询岗位信息
     * @param page 分页参数
     * @return 分页结果
     */
    IPage<SystemPost> pageCustom(Page<SystemPost> page);

    /**
     * 自定义保存或更新岗位信息
     * @param systemPost 岗位信息
     * @return 操作结果
     */
    boolean saveOrUpdateCustom(SystemPost systemPost);

    /**
     * 自定义根据ID删除岗位
     * @param id 岗位ID
     * @return 操作结果
     */
    boolean removeByIdCustom(Long id);

    /**
     * 自定义根据ID获取岗位信息
     * @param id 岗位ID
     * @return 岗位信息
     */
    SystemPost getByIdCustom(Long id);

    /**
     * 自定义获取所有岗位列表
     * @return 岗位列表
     */
    List<SystemPost> listCustom();

    /**
     * 根据岗位ID更新状态
     * @param id 岗位ID
     * @param status 状态
     * @return 操作结果
     */
    boolean updateStatusByPostId(Long id, BaseStatus status);
}
